package models

import (
	"hello/inits/db"
	"hello/inits/myhelpers"
)

//GORM 倾向于约定，而不是配置。默认情况下，
//GORM 使用 ID 作为主键，使用结构体名的 蛇形复数 作为表名，
//字段名的 蛇形 作为列名，并使用 CreatedAt、UpdatedAt 字段追踪创建、更新时间
type CategoryModel struct {
	ID       uint   `gorm:"primary_key,column:id" json:"id"`
	Name     string `gorm:"column:name" json:"name"`
	Status   int    `gorm:"column:int" json:"status"`
	IsDelete int    `gorm:"column:is_deleted" json:"is_delete"`
}

func (CategoryModel) TableName() string {
	return "category"
}

// 获取所有栏目
func (c *CategoryModel) GetAll(page int) ([]CategoryModel, int, error) {
	var categorys []CategoryModel
	pageSize := 10
	if page <= 0 {
		page = 1
	}
	err := db.DB.Limit(pageSize).Offset((page - 1) * pageSize).
		Order("id DESC").Find(&categorys).Error
	var count64 int64
	db.DB.Model(c).Count(&count64)
	count := myhelpers.MHELPER.Int64ToInt(count64)
	return categorys, count, err
}
